<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" 
	import="java.util.List,com.telecom.cms.dao.*,com.telecom.cms.dto.*" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<%
	String startDate = request.getParameter("startDate");
	String endDate = request.getParameter("endDate");
	String userId = request.getParameter("userId");
	String logType = request.getParameter("logType");
	
	if (logType != null){
		request.setAttribute("startDate",startDate);
		request.setAttribute("endDate",endDate);
		request.setAttribute("userId",userId);
		if (logType.equals("log01")){
			request.setAttribute("logReport",IdaLogDAO.queryLoginDaily(startDate,endDate,userId));
		}
		else if (logType.equals("log02")){
			request.setAttribute("logReport",IdaLogDAO.queryAccsDaily(startDate,endDate,userId));
		}
		else if (logType.equals("log03")){
			request.setAttribute("logReport",IdaLogDAO.queryLoginHour(startDate,endDate,userId));
		}
		else if (logType.equals("log04")){
			request.setAttribute("logReport",IdaLogDAO.queryLogUser(startDate,endDate,userId));
		}
		else if (logType.equals("log05")){
			request.setAttribute("logReport",IdaLogDAO.queryLogDetail(startDate,endDate,userId));
		}
	}
	
	List userList = (new SysUserDAO()).findAll();
	request.setAttribute("userList",userList);
%>
<html>
<head>
	<title>系统日志分析</title>
	<LINK href="../css/default.css" rel=stylesheet>
	<LINK href="../css/button.css" rel=stylesheet>
	<LINK href="../css/main.css" type=text/css rel=stylesheet>
<script type="text/javascript">
	function search(logtype){
		if (document.all.startDate.value == '' || document.all.endDate.value == ''){
			alert("请输入完整的查询日期范围");
			return;
		}
		document.forms[0].logType.value = logtype;
		document.forms[0].submit();	
	}
	
	function showHiddenDiv(id){
		var divstyle=document.getElementById(id).style.display;
		if(divstyle=="none"){
			document.getElementById(id).style.display="";
			document.getElementById("img"+ id).src="../images/minu_ico.gif";
		}else{
			document.getElementById(id).style.display="none";
			document.getElementById("img"+ id).src="../images/plus_ico.gif";
		}
	}
	
	function exportData(spanId,fileName){
		document.all.exportFileName.value = fileName+".xls";
	    exportExcel(document.getElementById(spanId).innerHTML,'../export');
		document.all.exportFileName.value=fileName;
	}
	
	function exportExcel(s,URL){
	    var oldAction=document.forms[0].action; 
		document.forms[0].exportContent.value="<META content=text/html; charset=GBK http-equiv=Content-Type/>"+s;
		document.forms[0].action=URL;
		document.forms[0].submit();	
		document.forms[0].action = oldAction;
	}
</script>

<!-- 日期选择控件 -->
<script language="javascript" type="text/javascript">
var date_start,date_end,g_object
var today = new Date();
var separator="-";
var inover=false;

function change_date(temp,mode)
{
	var t_month,t_year
    if (mode){
        if(mode==1)
        t_month=parseInt(cele_date_month.value,10)+parseInt(temp,10);
        else
        t_month=parseInt(temp)
        if (t_month<cele_date_month.options(0).text) {
            cele_date_month.value=cele_date_month.options(cele_date_month.length-1).text;
            change_date(parseInt(cele_date_year.value,10)-1,0);
            }
        else{
            if (t_month>cele_date_month.options(cele_date_month.length-1).text){
                cele_date_month.value=cele_date_month.options(0).text;
                change_date(parseInt(cele_date_year.value,10)+1,0);
                }            
            else
                {cele_date_month.value=t_month;
                 set_cele_date(cele_date_year.value,cele_date_month.value);                
                }
        }
    }  
    else{
        t_year=parseInt(temp,10);
        
        if (t_year<cele_date_year.options(0).text) {
            cele_date_year.value=cele_date_year.options(0).text;
            set_cele_date(cele_date_year.value,1);                
            }
        else{
            if (parseInt(t_year,10)>parseInt(cele_date_year.options(cele_date_year.length-1).text,10)){
                cele_date_year.value=cele_date_year.options(cele_date_year.length-1).text;
                set_cele_date(cele_date_year.value,12);                
                }            
            else
                {cele_date_year.value=t_year;
                 set_cele_date(cele_date_year.value,cele_date_month.value);                
                }
        }
    }

    window.cele_date.focus();

}

function init(d_start,d_end)
{
     var temp_str;
     var i=0
     var j=0
     date_start=new Date(1980,7,1)
     date_end=new Date(2004,8,1)
     document.writeln("<div name=\"cele_date\" id=\"cele_date\"  style=\"display:none\"    style=\"LEFT: 69px; POSITION: absolute; TOP: 159px;Z-INDEX:99\" onClick=\"event.cancelBubble=true;\" onBlur=\"hilayer()\" onMouseout=\"lostlayerfocus()\">-</div>");
     window.cele_date.innerHTML="";
     temp_str="<table border=\"1\" bgcolor=\"#DDDDDD\" bordercolor=\"white\"><tr><td colspan=7 onmouseover=\"overcolor(this)\">";
     temp_str+="<input type=\"Button\" value=\"<<\" onclick=\"change_date(-1,1)\" onmouseover=\"getlayerfocus()\" style=\"color: #000099; background-color: #BFBFBF; cursor: hand\">-";

     temp_str+=""
     temp_str+="<select name=\"cele_date_year\" id=\"cele_date_year\" language=\"javascript\" onchange=\"change_date(this.value,0)\" onmouseover=\"getlayerfocus()\" onblur=\"getlayerfocus()\" style=\"font-size: 9pt; border: 1px #666666 outset; background-color: #F4F8FB\">"

     for (i=1949;i<=2049;i++)
     {
     	temp_str+="<OPTION value=\""+i.toString()+"\">"+i.toString()+"</OPTION>";
     }
     temp_str+="</select>-";
     temp_str+=""
     temp_str+="<select name=\"cele_date_month\" id=\"cele_date_month\" language=\"javascript\" onchange=\"change_date(this.value,2)\" onmouseover=\"getlayerfocus()\" onblur=\"getlayerfocus()\" style=\"font-size: 9pt; border: 1px #666666 outset; background-color: #F4F8FB\">"

     for (i=1;i<=12;i++)
     {
     	temp_str+="<OPTION value=\""+i.toString()+"\">"+i.toString()+"</OPTION>";
     }
     temp_str+="</select>-";
     temp_str+=""
     temp_str+="<input type=\"Button\" value=\">>\" onclick=\"change_date(1,1)\" onmouseover=\"getlayerfocus()\"  style=\"color: #000099; background-color: #BFBFBF; cursor: hand\">";

     temp_str+="</td></tr><tr><td onmouseover=\"overcolor(this)\">"
     temp_str+="<font color=red>日</font></td><td>";temp_str+="一</td><td>"; temp_str+="二</td><td>"; temp_str+="三</td><td>"
     temp_str+="四</td><td>";temp_str+="五</td><td>"; temp_str+="六</td></tr>";
     for (i=1 ;i<=6 ;i++)
     {
     temp_str+="<tr>";
        for(j=1;j<=7;j++){
            temp_str+="<td name=\"c"+i+"_"+j+"\"id=\"c"+i+"_"+j+"\" style=\"CURSOR: hand\" style=\"COLOR:#000000\" language=\"javascript\" onmouseover=\"overcolor(this)\" onmouseout=\"outcolor(this)\" onclick=\"td_click(this)\">?</td>"
            }
     temp_str+="</tr>"        
     }
     temp_str+="</td></tr></table>";
     window.cele_date.innerHTML=temp_str;
}
function set_cele_date(year,month)
{
   var i,j,p,k
   var nd=new Date(year,month-1,1);
   event.cancelBubble=true;
   cele_date_year.value=year;
   cele_date_month.value=month;   
   k=nd.getDay()-1
   var temp;
   for (i=1;i<=6;i++)
      for(j=1;j<=7;j++)
      {
      eval("c"+i+"_"+j+".innerHTML=\"\"");
      eval("c"+i+"_"+j+".bgColor=\"#DDDDDD\"");
      eval("c"+i+"_"+j+".style.cursor=\"hand\"");
      }
   while(month-1==nd.getMonth())
    { j=(nd.getDay() +1);
      p=parseInt((nd.getDate()+k) / 7)+1;
      eval("c"+p+"_"+j+".innerHTML="+"\""+nd.getDate()+"\"");
      if ((nd.getDate()==today.getDate())&&(cele_date_month.value==today.getMonth()+1)&&(cele_date_year.value==today.getYear())){
      	 eval("c"+p+"_"+j+".bgColor=\"#EFFB64\"");
      }
      if (nd>date_end || nd<date_start)
      {
      eval("c"+p+"_"+j+".bgColor=\"#FF9999\"");
      eval("c"+p+"_"+j+".style.cursor=\"text\"");
      }
      nd=new Date(nd.valueOf() + 86400000)
    }
}


function show_cele_date(eP,d_start,d_end,t_object)
{
eP=document.getElementById(t_object);
window.cele_date.style.display="";
window.cele_date.style.zIndex=99
var s,cur_d
var eT = eP.offsetTop;  
var eH = eP.offsetHeight+eT;  
var dH = window.cele_date.style.pixelHeight;  
var sT = document.body.scrollTop; 
var sL = document.body.scrollLeft; 
event.cancelBubble=true;
window.cele_date.style.posLeft = event.clientX-event.offsetX+sL-5;  
window.cele_date.style.posTop = event.clientY-event.offsetY+eH+sT-5;
if (window.cele_date.style.posLeft+window.cele_date.clientWidth>document.body.clientWidth) window.cele_date.style.posLeft+=eP.offsetWidth-window.cele_date.clientWidth;
if (d_start!=""){
    if (d_start=="today"){
        date_start=new Date(today.getYear(),today.getMonth(),today.getDate());
    }else{
        s=d_start.split(separator);
        date_start=new Date(s[0],s[1]-1,s[2]);
    }
}else{
    date_start=new Date(1949,1,1);
}

if (d_end!=""){
    s=d_end.split(separator);
    date_end=new Date(s[0],s[1]-1,s[2]);
}else{
    date_end=new Date(3000,1,1);
}

//g_object=t_object
g_object=document.getElementById(t_object);

cur_d=new Date()
set_cele_date(cur_d.getYear(),cur_d.getMonth()+1);
window.cele_date.style.display="block";

window.cele_date.focus();

}
function td_click(t_object)
{
var t_d
if (parseInt(t_object.innerHTML,10)>=1 && parseInt(t_object.innerHTML,10)<=31 ) 
{ t_d=new Date(cele_date_year.value,cele_date_month.value-1,t_object.innerHTML)
if (t_d<=date_end && t_d>=date_start)
{
var year = cele_date_year.value;
var month = cele_date_month.value;
var day = t_object.innerHTML;
if (parseInt(month)<10) month = "0" + month;
if (parseInt(day)<10) day = "0" + day;

g_object.value=year+separator+month+separator+day;
window.cele_date.style.display="none";};
}

}
function h_cele_date()
{
window.cele_date.style.display="none";
}

function overcolor(obj)
{
  if (obj.style.cursor=="hand") obj.style.color = "#FFFFFF";

  inover=true;
  window.cele_date.focus();

}

function outcolor(obj)
{
	obj.style.color = "#000000";
	inover=false;

}

function getNow(o){
    var Stamp=new Date();
    var year = Stamp.getYear();
    var month = Stamp.getMonth()+1;
    var day = Stamp.getDate();
    if(month<10){
	month="0"+month;
    }
    if(day<10){
	day="0"+day;
    }
    o.value=year+separator+month+separator+day;
}

function hilayer()
{
	if (inover==false)
	{
		var lay=document.all.cele_date;
		lay.style.display="none";
	}
}
function getlayerfocus()
{
	inover=true;
}
function lostlayerfocus()
{
	inover=false;
}
init();
</script>
</head>
<body>
<form method="post" action="">
<table width="770" cellspacing="0" cellpadding="0" border="0" align="center">
<tbody>
	<tr>
		<td width="3" height="31">
			<img height="31" src="../images/table_01.gif" width="3" />
		</td>
		<td background="../images/table_02.gif" height="31">
			<table cellspacing="0" cellpadding="0" width="170" align="left" border="0">
				<tbody>
					<tr>
						<td width="51" background="../images/title_1_bg.gif">
							<img height="31" src="../images/title_1.gif" width="51" />
						</td>
						<td width="150" background="../images/title_1_bg.gif">
							<span class="color_b_666">系统日志分析</span>
						</td>
					</tr>
				</tbody>
			</table>
		</td>
		<td width="3">
			<img height="31" src="../images/table_03.gif" width="3" />
		</td>
	</tr>
	<tr>
		<td background="../images/table_04.gif">
			<img height="5" src="../images/table_04.gif" width="3">
		</td>
		<td style="PADDING-TOP: 3px" valign="top">
			<table width="100%" border="0" cellspacing="1" cellpadding="2" class="moduleList" bgcolor="#D5D5D5" align="center">
				<tr align="left" valign="bottom">
					<td>
						&nbsp;&nbsp;开始日期：
						<input type='text' id='startDate' name='startDate' value='${startDate}' onfocus="show_cele_date('startDate','','','startDate')">
						&nbsp;&nbsp;结束日期：
						<input type='text' id='endDate' name='endDate' value='${endDate}' onfocus="show_cele_date('endDate','','','endDate')">
						&nbsp;&nbsp;用户：
						<html:select property="userId" value="${userId}">
							<html:option value="">所有用户</html:option>
							<logic:present name="userList" scope="request">
								<logic:iterate name="userList" id="user">
									<html:option value="${user.userId}">
										<bean:write name="user" property="userName"/>
									</html:option>
								</logic:iterate>
							</logic:present>
						</html:select>
					</td>
				</tr>
				<tr align="center">
					<th align="left" valign="bottom" height="30">
						<div align="center" id="menu">
							<input class=btn_mouseout type="button"
								onmouseover="this.className=&#39;btn_mouseover&#39;"
								onmouseout="this.className=&#39;btn_mouseout&#39;"
								onmousedown="this.className=&#39;btn_mousedown&#39;"
								onmouseup="this.className=&#39;btn_mouseup&#39;" value="每日系统访问量"
								onclick="search('log01')">
							<input class=btn_mouseout type="button"
								onmouseover="this.className=&#39;btn_mouseover&#39;"
								onmouseout="this.className=&#39;btn_mouseout&#39;"
								onmousedown="this.className=&#39;btn_mousedown&#39;"
								onmouseup="this.className=&#39;btn_mouseup&#39;" value="各报表访问情况"
								onclick="search('log02')">
							<input class=btn_mouseout type="button"
								onmouseover="this.className=&#39;btn_mouseover&#39;"
								onmouseout="this.className=&#39;btn_mouseout&#39;"
								onmousedown="this.className=&#39;btn_mousedown&#39;"
								onmouseup="this.className=&#39;btn_mouseup&#39;" value="各时段系统访问情况"
								onclick="search('log03')">
							<input class=btn_mouseout type="button"
								onmouseover="this.className=&#39;btn_mouseover&#39;"
								onmouseout="this.className=&#39;btn_mouseout&#39;"
								onmousedown="this.className=&#39;btn_mousedown&#39;"
								onmouseup="this.className=&#39;btn_mouseup&#39;" value="用户访问情况汇总"
								onclick="search('log04')">
							<input class=btn_mouseout type="button"
								onmouseover="this.className=&#39;btn_mouseover&#39;"
								onmouseout="this.className=&#39;btn_mouseout&#39;"
								onmousedown="this.className=&#39;btn_mousedown&#39;"
								onmouseup="this.className=&#39;btn_mouseup&#39;" value="访问情况详细查询"
								onclick="search('log05')">
						</div>
					</th>
				</tr>
			</table>
			<logic:present name="logReport" scope="request">
			<table width='100%' border='0' cellspacing='' cellpadding='2'>
				<tr>
					<td align="left" valign="bottom">
						[<a href="#" onclick="exportData('spanId1','System Visit Log');">导出结果文件</a>]
					</td>
					<td align="right" valign="bottom"></td>
				</tr>
				<tr>
					<td align="left" colspan="2">
						<span id="spanId1">
						<table width='100%' border='0' cellspacing='1' cellpadding='2'>
							<%
								List logData = (List)request.getAttribute("logReport");
								for (int i = 0; i < logData.size(); i++){
									if (i == 0){
										out.println("<tr align='center' height='25'>");
										Object[] row = (Object[])logData.get(i);
										for (int j = 0; j < row.length; j++)
											out.println("<td background='../images/table_bg0.GIF'>" + row[j] + "</td>");
										out.println("</tr>");
									}
									else{
										out.println("<tr height='20'>");
										Object[] row = (Object[])logData.get(i);
										for (int j = 0; j < row.length; j++)
											out.println("<td>" + row[j] + "</td>");
										out.println("</tr>");
									}
								}
							%>
						</table>
						</span>
					</td>
				</tr>
			</table>
			</logic:present>
		</td>
		<td background="../images/table_05.gif">
			<img height="5" src="../images/table_05.gif" width="3">
		</td>
	</tr>
	<tr height="3">
		<td height="3">
			<img height="12" src="../images/table_06.gif" width="3">
		</td>
		<td height="3">
			<img height="3" src="../images/table_07.gif" width="764">
		</td>
		<td height="3">
			<img height="12" src="../images/table_08.gif" width="3">
		</td>
	</tr>
</tbody>
</table>
<br />
<input type="hidden" name="logType" value="" />
<input type="hidden" name="exportFileName" value="" />
<input type="hidden" name="exportContent"  value="" />
</form>
</body>
</html>